package com.itfenghuang.day13;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class 复习 {
    public static void main(String[] args) throws UnknownHostException {
        /**
         *   1.  生产者和消费者
         *
         *   2.线程生命周期 LifeCycle
         *
         *   3.网络编程
         *      1).计算机网络: 将在不同地理位置具有独立功能的计算机及其外部设备,通过通信线路
         *         连接起来,在网络操作系统以及网络管理软件和网络通信协议的管理和协调下,实现
         *         资源的共享和信息传递
         *      2).网络编程三要素
         *        IP 端口 协议
         *        IP地址的命令 在dos窗口 输入ipconfig
         *        ping 命令
         *               ping   IP 地址    192.168.2.183
         *               ping  域名        www.baidu.com
         *        端口号 就是设备中的应用程序的唯一标识
         *        网络通信双方共同遵守的规则  常见的协议:  UDP TDP
         *
         *
         */

        //  4. InetAddress
        InetAddress ia = InetAddress.getByName("127.0.0.1");
        //获取主机名称
        String hostName = ia.getHostName();
        System.out.println(hostName);
        //获取IP地址
        String hostAddress = ia.getHostAddress();
        System.out.println(hostAddress);


        /**
         * 5 .端口和协议
         *    端口:
         *
         *       设备上的应用程序的唯一标识,每一个端口都有各自的端口号
         *       端口号两个字节表示  范围: 0--65535 其中1到1023已经被知名软件占用
         *
         *    协议:
         *       UDP协议: 用户数据协议 ( User Datagram protocol);
         *       无连接通信协议,在通信时,发送端和接收端不建立逻辑连接
         *
         *       TCP协议:  传输控制协议(Transmission Control Protocol )
         *       面向连接的通信协议,在传输数据之前,客户端和服务端建立逻辑连接,然后再进行传输数据
         *           在TCP连接中必须明确客户端和服务端,由客户端向服务端发出连接请求,每次创建连接
         *           需要经过"三次握手" ,以及每次断开连接需要经过"四次挥手"
         *
         *           三次握手: TCP协议中,在发送数据的准备阶段,客户端和服务端之间
         *                     会进行三次交互用来保证连接的可靠性;
         *
         */


        //  6.  //发送端和接收端

             /*  发送数据步骤
             *      1). 创建DatagramSocket对象
             *      2). 创建数据,再将数据打包
             *      3). 发送数据
             *      4). 释放资源
             */

             /*  接受数据步骤
            *      1). 创建DatagramSocket对象
            *      2). 创建数据报包,接受数据
            *      3). 调用方法接受数据
            *      4). 解析数据,打印在控制台时上
            *      5). 释放资源
            */

    }
}
